iT邦幫忙

2022 iThome 鐵人賽

DAY 28
0

https://i.imgur.com/CBWNPcM.jpg

一、前言

測試是前端裡面的一個重要單元,雖然說很重要,但是在一般的練習專案中,不會特別的去撰寫測試單元,自然就不會去研究相關的資料。趁這次鐵人賽的機會,來好好的 push 自己學學測試相關的用法,本篇會著重在了解測試的觀念上,還不會進入真正的實作,希望可以對測試完全沒有概念的新手們有所幫助。那麼,我們直接開始吧~


二、測試的基本概念

這裡想要來談談關於測試的一些基本知識點。

2.1 什麼是測試?為什麼要做測試?

測試就是在產品上線之前,所做的一系列檢驗,目的是為了要確認產品的功能是正確的、可被預測的。測試的目的在於找出產品的 Bug,並且檢測報告交給相關人員去進行修正,排除產品的問題。

測試的好處可以是:

  1. 確保程式得到預期的結果。
  2. 當需求更動時,可以透過測試,提早預測與預防可能會發生的錯誤。

2.2 前端測試種類?

主要可以分為以下類型。

  1. 單元測試 (Unit testing)
  2. 整合測試 (Integration testing)
  3. 端對端測試 (End-to-end testing) (E2E testing)
  4. 靜態測試 (Static testing)

其中,常被拿來討論的為單元測試

2.3 單元測試的三兩事

單元測試(UT)可以參考這篇文章【1】

簡單來說,單元測試的用途就是:「用最小單邏輯功能,比如某個 Class 或是 Function 來做測試,好處是只測試小小的功能,不會影響整個系統。並且作單元測試也可以保證程式碼的品質。

其他還有像是在作 UT 時,相關規則、相關術語,以及執行 UT 時該要注意的地方,都可以先去了解一下~

2.4 TDD and BDD

常見的兩個名詞,TDD 和 BDD,其精神如下:

  1. TDD (Test-Driven Development) 測試驅動開發。
  2. BDD (Behavior-driven development) 行為驅動開發。

TDD 精神為:先寫測試程序,然後編碼實現其功能,可以參考這裡【2】。

BDD:精神在於能更有效地發現問題、方便協作和示範,可參考這裡【3】。

BDD 可以說是 TDD 的加強版,TDD 比較偏向工程師的開發,而 BDD 的出現,就是為了讓其他非技術人員可參與討論的開發流程。


三、如何開始單元測試?

使用工具找到兩種,一個是 Mocha,另一個則是 Jest【4】。

Mocha 可以參考這篇文章【5】。

個人會想先從 Jset 開始學起。


四、推薦資源

  1. 前端工程師,為什麼應該要寫測試?「寫測試是在保護我們的程式」
  2. 一次搞懂單元測試、整合測試、端對端測試之間的差異
  3. 如何在前端導入單元測試
  4. 前端測試原來沒這麼單純

五、結論

本篇的最主要目標,就是要先釐清測試的用途、測試大概會有哪一些東西,以及蒐集各種資源,並且將這些資源與資料做排序,排列出一條可行的學習路徑。


六、參考資料

  1. [UT] What's unit test ? 在前端要測什麼 ?!
  2. 測試驅動開發- 維基百科,自由的百科全書
  3. BDD/TDD差別是什麼? 手把手用 Cucumber 實作示範BDD
  4. Jest · Delightful JavaScript Testing
  5. 前端測試工具介紹-Mocha - Slides

上一篇
Day 27:React 的 Hook - 概觀
下一篇
Day 29:前端面試題目整理
系列文
手刻武器庫,30 天前端學習心得30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言